1. Field of the Invention
This invention relates to a stored logic program scanner for a general purpose data processor and more particularly to such a processor having plural data and instruction streams.
2. Description of the Prior Art
Prior art data processors have in general been sequential in nature due to the sequential nature of conventional imperative code they employ. A particular processor module of this type is disclosed in the Barton, et al. U.S. Pat. Nos. 3,461,434, 3,546,677 and 3,548,384. These patents are directed toward a stack oriented data processor where the function of the stack mechanism, a first-in last-out mechanism is to handle the flow of operators and associated parameters in a manner which reflects on the nested structure of particular higher level languages. However, where it is desired to provide the customer with an upgrade to such a processor, it becomes necessary to increase the throughput of the processor while maintaining program compatibility with previous and smaller members of the same processing family.
The execution of a sequence of code involves three basic forms of processing: the processing of the instruction format, the processing of the references created by that instruction and the execution of the function specified by the instruction. In a simple sequential machine the total time to execute a sequence So, Si . . . Sn is (Io+Ro+Eo)+(Ii+Ri+Ei+. . . (In+Rn+En) where I is an instruction processing, R is a reference processing and E is an execution processing. In a simple pipeline machine, ignoring certain dependencies, the same sequence can be executed in a time equal to the largest sum of a processing stage, namely (Io+Ii+. . . In) and so forth where the individual instruction processing, reference processing and execution processing are done in parallel.
However, sequential object code as received from a higher level language compiler does not always contain the proper sequencing of code for easy segregation to be sent to various units of such a parallel processor for execution. Thus, a program scanner is provided to scan the incoming code and determine what segments of the code can be grouped together for transmission to various units of the processor.
It is then an object of the present invention to provide an improved program scanner for a multiple instruction and data stream processor.
It is another object of the present invention to provide an improved program scanner which scans the incoming code and groups appropriate syllables be they instructions, references (to data) or literal values for transmission on to various units of the processor.
It is still a further object of the present invention to provide such a program scanner employing stored logic as required to provide easy expansion of the scanner's functions to recognize new groups that might be added to the object code set of instructions.